## API Report File for "@backstage/plugin-entity-feedback"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { DiscoveryApi } from '@backstage/core-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { EntityRatingsData } from '@backstage/plugin-entity-feedback-common';
import { FeedbackResponse } from '@backstage/plugin-entity-feedback-common';
import { FetchApi } from '@backstage/core-plugin-api';
import { Rating } from '@backstage/plugin-entity-feedback-common';
import { Ratings } from '@backstage/plugin-entity-feedback-common';
import { default as React_2 } from 'react';
import { ReactNode } from 'react';
import { RouteRef } from '@backstage/core-plugin-api';

// @public (undocumented)
export interface EntityFeedbackApi {
  // (undocumented)
  getAllRatings(): Promise<EntityRatingsData[]>;
  // (undocumented)
  getOwnedRatings(ownerRef: string): Promise<EntityRatingsData[]>;
  getRatingAggregates(entityRef: string): Promise<Ratings>;
  // (undocumented)
  getRatings(entityRef: string): Promise<Omit<Rating, 'entityRef'>[]>;
  // (undocumented)
  getResponses(
    entityRef: string,
  ): Promise<Omit<FeedbackResponse, 'entityRef'>[]>;
  // (undocumented)
  recordRating(entityRef: string, rating: string): Promise<void>;
  // (undocumented)
  recordResponse(
    entityRef: string,
    response: Omit<FeedbackResponse, 'entityRef' | 'userRef'>,
  ): Promise<void>;
}

// @public (undocumented)
export const entityFeedbackApiRef: ApiRef<EntityFeedbackApi>;

// @public (undocumented)
export class EntityFeedbackClient implements EntityFeedbackApi {
  constructor(options: { discoveryApi: DiscoveryApi; fetchApi: FetchApi });
  // (undocumented)
  getAllRatings(): Promise<EntityRatingsData[]>;
  // (undocumented)
  getOwnedRatings(ownerRef: string): Promise<EntityRatingsData[]>;
  // (undocumented)
  getRatingAggregates(entityRef: string): Promise<Ratings>;
  // (undocumented)
  getRatings(entityRef: string): Promise<Omit<Rating, 'entityRef'>[]>;
  // (undocumented)
  getResponses(
    entityRef: string,
  ): Promise<Omit<FeedbackResponse, 'entityRef'>[]>;
  // (undocumented)
  recordRating(entityRef: string, rating: string): Promise<void>;
  // (undocumented)
  recordResponse(
    entityRef: string,
    response: Omit<FeedbackResponse, 'entityRef' | 'userRef'>,
  ): Promise<void>;
}

// @public (undocumented)
export const entityFeedbackPlugin: BackstagePlugin<
  {
    root: RouteRef<undefined>;
  },
  {}
>;

// @public (undocumented)
export interface EntityFeedbackResponse {
  // (undocumented)
  id: string;
  // (undocumented)
  label: string;
}

// @public (undocumented)
export const EntityFeedbackResponseContent: () => React_2.JSX.Element;

// @public (undocumented)
export const EntityLikeDislikeRatingsCard: () => React_2.JSX.Element;

// @public (undocumented)
export const EntityStarredRatingsCard: () => React_2.JSX.Element;

// @public (undocumented)
export const FeedbackResponseDialog: (
  props: FeedbackResponseDialogProps,
) => React_2.JSX.Element;

// @public (undocumented)
export interface FeedbackResponseDialogProps {
  // (undocumented)
  entity: Entity;
  // (undocumented)
  feedbackDialogResponses?: EntityFeedbackResponse[];
  // (undocumented)
  feedbackDialogTitle?: ReactNode;
  // (undocumented)
  onClose: () => void;
  // (undocumented)
  open: boolean;
}

// @public (undocumented)
export const FeedbackResponseTable: (
  props: FeedbackResponseTableProps,
) => React_2.JSX.Element;

// @public (undocumented)
export interface FeedbackResponseTableProps {
  // (undocumented)
  entityRef: string;
  // (undocumented)
  title?: string;
}

// @public (undocumented)
export const LikeDislikeButtons: (
  props: LikeDislikeButtonsProps,
) => React_2.JSX.Element;

// @public (undocumented)
export interface LikeDislikeButtonsProps {
  // (undocumented)
  feedbackDialogResponses?: EntityFeedbackResponse[];
  // (undocumented)
  feedbackDialogTitle?: ReactNode;
  // (undocumented)
  requestResponse?: boolean;
}

// @public (undocumented)
export const LikeDislikeRatingsTable: (
  props: LikeDislikeRatingsTableProps,
) => React_2.JSX.Element;

// @public (undocumented)
export interface LikeDislikeRatingsTableProps {
  // (undocumented)
  allEntities?: boolean;
  // (undocumented)
  ownerRef?: string;
  // (undocumented)
  title?: string;
}

// @public (undocumented)
export const StarredRatingButtons: (
  props: StarredRatingButtonsProps,
) => React_2.JSX.Element;

// @public (undocumented)
export interface StarredRatingButtonsProps {
  // (undocumented)
  feedbackDialogResponses?: EntityFeedbackResponse[];
  // (undocumented)
  feedbackDialogTitle?: ReactNode;
  // (undocumented)
  requestResponse?: boolean;
  // (undocumented)
  requestResponseThreshold?: number;
}

// @public (undocumented)
export const StarredRatingsTable: (
  props: StarredRatingsTableProps,
) => React_2.JSX.Element;

// @public (undocumented)
export interface StarredRatingsTableProps {
  // (undocumented)
  allEntities?: boolean;
  // (undocumented)
  ownerRef?: string;
  // (undocumented)
  title?: string;
}
```
